;; Test vector literals
(display "Testing vector literals...\n")

;; Define vectors using literal syntax
(define v1 '#())
(define v2 '#(1 2 3))
(define v3 '#(a b c))
(define v4 '#(1 2 3 4 5))
(define v5 '#("hello" "world"))
(define v6 '#(1 (2 3) 4))
(define v7 '#(0 (2 2 2 2) "Anna")) ; The example from the user

;; Test vector? predicate
(display "vector? '#(1 2 3): ")
(write (vector? v2))
(display "\n")

;; Test vector-length
(display "vector-length '#(1 2 3): ")
(write (vector-length v2))
(display "\n")

(display "vector-length '#(): ")
(write (vector-length v1))
(display "\n")

;; Test vector-ref
(display "vector-ref '#(1 2 3) 1: ")
(write (vector-ref v2 1))
(display "\n")

(display "vector-ref '#(0 (2 2 2 2) \"Anna\") 1: ")
(write (vector-ref v7 1))
(display "\n")

(display "vector-ref '#(0 (2 2 2 2) \"Anna\") 2: ")
(write (vector-ref v7 2))
(display "\n")

;; Test vector-set!
(vector-set! v2 1 99)
(display "After vector-set! '#(1 2 3) 1 99: ")
(write v2)
(display "\n")

;; Test vector->list
(display "vector->list '#(1 99 3): ")
(write (vector->list v2))
(display "\n")

;; Test nested vector
(display "Nested vector '#(1 (2 3) 4): ")
(write v6)
(display "\n")

;; Test displaying the user's example
(display "User's example '#(0 (2 2 2 2) \"Anna\"): ")
(write v7)
(display "\n")

(display "Vector literals test completed.\n")